/*
 *------------------------------------------------------------------------------
 * @File      :    ei_mai_disp.h
 * @Date      :    2021-4-8
 * @Author    :    lomboswer <lomboswer@lombotech.com>
 * @Brief     :    Media Interface for MADP(Media Development Platform).
 *
 * Copyright (C) 2020-2021, LomboTech Co.Ltd. All rights reserved.
 *------------------------------------------------------------------------------
 */

#ifndef __MAI_DISP_H__
#define __MAI_DISP_H__

#include "ei_type.h"
#include "ei_comm_video.h"
#include "ei_comm_doss.h"
#include "ei_comm_panel.h"
#include "ei_mai_comm_define.h"
#include "ei_mai_disp_define.h"

#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif

EI_S32 EI_MAI_Disp_Init(EI_HANDLE VoDev, PANEL_TYPE_E enPanelType);
EI_S32 EI_MAI_Disp_DeInit(EI_HANDLE VoDev);

EI_S32 EI_MAI_Disp_SetVideoLayerPartitionMode(EI_HANDLE VoLayer, VO_PART_MODE_E enPartMode);
EI_S32 EI_MAI_Disp_GetVideoLayerPartitionMode(EI_HANDLE VoLayer, VO_PART_MODE_E *penPartMode);

EI_S32 EI_MAI_Disp_SetChnRotation(EI_HANDLE VoLayer, EI_HANDLE VoChn, EI_MADP_ROTATE_E enRotation);
EI_S32 EI_MAI_Disp_GetChnRotation(EI_HANDLE VoLayer, EI_HANDLE VoChn, EI_MADP_ROTATE_E *penRotation);

EI_S32 EI_MAI_Disp_VideoLayer_SetAttr(EI_HANDLE VoLayer, VO_VIDEO_LAYER_ATTR_S *pstLayerAttr);
EI_S32 EI_MAI_Disp_VideoLayer_GetAttr(EI_HANDLE VoLayer, VO_VIDEO_LAYER_ATTR_S *pstLayerAttr);

EI_S32 EI_MAI_Disp_Start(EI_HANDLE VoLayer);
EI_S32 EI_MAI_Disp_Stop(EI_HANDLE VoLayer);

EI_S32 EI_MAI_Disp_Window_SetAttr(EI_HANDLE VoLayer, EI_HANDLE VoChn, VO_CHN_ATTR_S* pstWndAttr);
EI_S32 EI_MAI_Disp_Window_GetAttr(EI_HANDLE VoLayer, EI_HANDLE VoChn, VO_CHN_ATTR_S* pstWndAttr);

EI_S32 EI_MAI_Disp_Window_Start(EI_HANDLE VoLayer, EI_HANDLE VoChn);
EI_S32 EI_MAI_Disp_Window_Stop(EI_HANDLE VoLayer, EI_HANDLE VoChn);

EI_S32 EI_MAI_Disp_Link_IPPU(EI_HANDLE IppuHdl, EI_HANDLE VPortHdl, EI_HANDLE VoLayer, EI_HANDLE VoChn);
EI_S32 EI_MAI_Disp_UnLink_IPPU(EI_HANDLE IppuHdl, EI_HANDLE VPortHdl, EI_HANDLE VoLayer, EI_HANDLE VoChn);

EI_S32 EI_MAI_Disp_Link_Camera(EI_HANDLE CameraHdl, EI_HANDLE CameraChn, EI_HANDLE VoLayer, EI_HANDLE VoChn);
EI_S32 EI_MAI_Disp_UnLink_Camera(EI_HANDLE CameraHdl, EI_HANDLE CameraChn, EI_HANDLE VoLayer, EI_HANDLE VoChn);

EI_S32 EI_MAI_Disp_SetAttrEx(EI_HANDLE VoLayer, EI_HANDLE VoChn, EI_MADP_DISP_CMD_E enCMD, DISP_ATTREX_S *pstAttrEx);

#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif

#endif
